/*
  该文件专门用于暴露出一个store对象  整个应用只有一个store对象
*/

import { createStore, applyMiddleware } from 'redux' // 引入createStore 创建核心store对象
import countReducer from './count_reducer'
/*
  使用 redux-thunk 这个中间键  可以使得store可以执行异步action 
    store要使用中间键需要使用 applyMiddleware 这个方法修饰一下

    在添加中间键之前 store.dispatch() 只能接收一个普通的action对象
      普通的 action 就是一个正常的 Object 对象
      异步的 action 对象是一个函数 -- 因为只有函数才能异步
*/
import thunk from 'redux-thunk'

const store = createStore(countReducer, applyMiddleware(thunk))

export default store

/*
  store 相当于店长  reducer相当于厨师长  actions相当于服务员 组件相当于顾客
    基本流程 ：
      顾客要点菜 先传递给服务员  服务员再传达给店长  店长看了没问题给厨师  厨师做好了再给店长  顾客就可以通过店长了解菜品了
*/
